/**
 * #info
 *@author   liujianzhao
 *@createTime   2018/04/9
 *@updateTime   2018/06/08
 *@description  IFrame
 */
import config from '../../../config/config.js'

// prefix
const prefixCls = config.prefix + '-iframe'
/**
 * #item
 *
 * @type aty-iframe
 * @cn   iframe
 * @stPlugin true
 * @stContainer false
 */
// 模块
const module = {
  name: config.prefix + '-iframe',
  props: {
    /**
     * #property
     *
     * @name  src
     * @cn    src
     * @type  string
     * @description iframe的src属性值
     */
    src: {
      type: String,
      default: ''
    },
    /**
     * #property
     *
     * @name height
     * @cn   iframe的高度
     * @type number,string
     * @value 100%
     * @description iframe的高度
     */
    height: {
      type: [String, Number],
      default: '100%'
    },
    /**
     * #property
     *
     * @name    width
     * @cn      iframe的宽
     * @type    number,string
     * @value   100%
     * @description  iframe的宽
     */
    width: {
      type: [String, Number],
      default: '100%'
    },
    /**
     * #property
     *
     * @name autoHeight
     * @cn   iframe是否自动获取内容的高度
     * @type boolean
     * @value   false
     * @description  iframe是否自动获取内容的高度，会自动获取内容的高度进行赋值，作为iframe的高度
     */
    autoHeight: {
      type: Boolean,
      default: false
    },
    /**
     * #property
     *
     * @name name
     * @cn   iframe的name
     * @type string
     * @description  iframe的name属性
     */
    name: {
      type: String
    }
  },
  data () {
    return {
      currentWidth: Artery.type(this.width) !== 'number' ? this.width : this.width + 'px',
      currentHeight: Artery.type(this.height) !== 'number' ? this.height : this.height + 'px',
      contentHeight: 0
    }
  },
  computed: {
    // 是否自动出现滚动条
    scrolling () {
      return this.autoHeight ? 'no' : 'auto'
    },
    wrapClass () {
      return [
        prefixCls
      ]
    },
    style () {
      return {
        width: this.currentWidth,
        height: this.autoHeight ? this.contentHeight : this.currentHeight
      }
    }
  },
  methods: {
    load: function () {
      // 获取内容的高
      let _height = this.currentHeight
      try {
        _height = this.$el.contentWindow.document.body.scrollHeight
      } catch (e) {
        _height = false
      }
      this.contentHeight = _height ? _height + 'px' : this.currentHeight
      /**
       * #event
       *
       * @name load
       * @param contentHeight   iframe内容的高
       * @body
       * @description load 事件触发
       */
      this.$emit('load', _height)
    }
  }
}
export default module
